home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / zpsldlt.z / zpsldlt
Encoding:
Text File  |  2002-10-03  |  44.4 KB  |  595 lines

  1.  
  2.  
  3.  
  4. ZZZZPPPPSSSSLLLLDDDDLLLLTTTT((((3333SSSS))))                                                        ZZZZPPPPSSSSLLLLDDDDLLLLTTTT((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____DDDDeeeessssttttrrrrooooyyyy, ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____EEEExxxxttttrrrraaaaccccttttPPPPeeeerrrrmmmm, ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____FFFFaaaaccccttttoooorrrr, ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____FFFFaaaaccccttttoooorrrrOOOOOOOOCCCC,
  10.      ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____OOOOOOOOCCCCLLLLiiiimmmmiiiitttt, ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____OOOOOOOOCCCCPPPPaaaatttthhhh, ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____OOOOrrrrddddeeeerrrriiiinnnngggg, ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____PPPPrrrreeeepppprrrroooocccceeeessssssss,
  11.      ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____PPPPrrrreeeepppprrrroooocccceeeessssssssZZZZ, ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeee, ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeeeMMMM, ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSttttoooorrrraaaaggggeeee -
  12.      Parallel sparse symmetric solver for linear systems of complex equations
  13.  
  14. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  15.      Fortran synopsis:
  16.  
  17.           SSSSUUUUBBBBRRRROOOOUUUUTTTTIIIINNNNEEEE ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____DDDDEEEESSSSTTTTRRRROOOOYYYY ((((_t_o_k_e_n))))
  18.           IIIINNNNTTTTEEEEGGGGEEEERRRR _t_o_k_e_n
  19.  
  20.           SSSSUUUUBBBBRRRROOOOUUUUTTTTIIIINNNNEEEE ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____EEEEXXXXTTTTRRRRAAAACCCCTTTTPPPPEEEERRRRMMMM ((((_t_o_k_e_n,,,, _p_e_r_m))))
  21.           IIIINNNNTTTTEEEEGGGGEEEERRRR _t_o_k_e_n,,,, _p_e_r_m(*)
  22.  
  23.           SSSSUUUUBBBBRRRROOOOUUUUTTTTIIIINNNNEEEE ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____FFFFAAAACCCCTTTTOOOORRRR ((((_t_o_k_e_n,,,, _n,,,, _p_o_i_n_t_e_r_s,,,, _i_n_d_i_c_e_s,,,, _v_a_l_u_e_s))))
  24.           IIIINNNNTTTTEEEEGGGGEEEERRRR _t_o_k_e_n,,,, _n,,,, _p_o_i_n_t_e_r_s(*),,,, _i_n_d_i_c_e_s(*)
  25.           DDDDOOOOUUUUBBBBLLLLEEEE CCCCOOOOMMMMPPPPLLLLEEEEXXXX _v_a_l_u_e_s(*)
  26.  
  27.           SSSSUUUUBBBBRRRROOOOUUUUTTTTIIIINNNNEEEE ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____FFFFAAAACCCCTTTTOOOORRRROOOOOOOOCCCC ((((_t_o_k_e_n,,,, _n,,,, _p_o_i_n_t_e_r_s,,,, _i_n_d_i_c_e_s,,,, _v_a_l_u_e_s))))
  28.           IIIINNNNTTTTEEEEGGGGEEEERRRR _t_o_k_e_n,,,, _n,,,, _p_o_i_n_t_e_r_s(*),,,, _i_n_d_i_c_e_s(*)
  29.           DDDDOOOOUUUUBBBBLLLLEEEE CCCCOOOOMMMMPPPPLLLLEEEEXXXX _v_a_l_u_e_s(*)
  30.  
  31.           SSSSUUUUBBBBRRRROOOOUUUUTTTTIIIINNNNEEEE ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____OOOOOOOOCCCCLLLLIIIIMMMMIIIITTTT ((((_t_o_k_e_n,,,, _o_o_c_l_i_m_i_t))))
  32.           IIIINNNNTTTTEEEEGGGGEEEERRRR _t_o_k_e_n
  33.           DDDDOOOOUUUUBBBBLLLLEEEE PPPPRRRREEEECCCCIIIISSSSIIIIOOOONNNN _o_o_c_l_i_m_i_t
  34.  
  35.           SSSSUUUUBBBBRRRROOOOUUUUTTTTIIIINNNNEEEE ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____OOOOOOOOCCCCPPPPAAAATTTTHHHH ((((_t_o_k_e_n,,,, _o_o_c_p_a_t_h))))
  36.           IIIINNNNTTTTEEEEGGGGEEEERRRR _t_o_k_e_n
  37.           CCCCHHHHAAAARRRRAAAACCCCTTTTEEEERRRR _o_o_c_p_a_t_h(*)
  38.  
  39.           SSSSUUUUBBBBRRRROOOOUUUUTTTTIIIINNNNEEEE ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____OOOORRRRDDDDEEEERRRRIIIINNNNGGGG ((((_t_o_k_e_n,,,, _m_e_t_h_o_d))))
  40.           IIIINNNNTTTTEEEEGGGGEEEERRRR _t_o_k_e_n,,,, _m_e_t_h_o_d
  41.  
  42.           SSSSUUUUBBBBRRRROOOOUUUUTTTTIIIINNNNEEEE ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____PPPPRRRREEEEPPPPRRRROOOOCCCCEEEESSSSSSSS ((((_t_o_k_e_n,,,, _n,,,, _p_o_i_n_t_e_r_s,,,, _i_n_d_i_c_e_s,,,,
  43.           _n_o_n__z_e_r_o_s,,,, _o_p_s))))
  44.           IIIINNNNTTTTEEEEGGGGEEEERRRR _t_o_k_e_n,,,, _n,,,, _p_o_i_n_t_e_r_s(*),,,, _i_n_d_i_c_e_s(*)
  45.           IIIINNNNTTTTEEEEGGGGEEEERRRR****8888 _n_o_n__z_e_r_o_s
  46.           DDDDOOOOUUUUBBBBLLLLEEEE PPPPRRRREEEECCCCIIIISSSSIIIIOOOONNNN _o_p_s
  47.  
  48.           SSSSUUUUBBBBRRRROOOOUUUUTTTTIIIINNNNEEEE ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____PPPPRRRREEEEPPPPRRRROOOOCCCCEEEESSSSSSSSZZZZ ((((_t_o_k_e_n,,,, _n,,,, _p_o_i_n_t_e_r_s,,,, _i_n_d_i_c_e_s,,,, _m_a_s_k,,,,
  49.           _n_o_n__z_e_r_o_s,,,, _o_p_s))))
  50.           IIIINNNNTTTTEEEEGGGGEEEERRRR _t_o_k_e_n,,,, _n,,,, _p_o_i_n_t_e_r_s(*),,,, _i_n_d_i_c_e_s(*),,,, _m_a_s_k(*)
  51.           IIIINNNNTTTTEEEEGGGGEEEERRRR****8888 _n_o_n__z_e_r_o_s
  52.           DDDDOOOOUUUUBBBBLLLLEEEE PPPPRRRREEEECCCCIIIISSSSIIIIOOOONNNN _o_p_s
  53.  
  54.           SSSSUUUUBBBBRRRROOOOUUUUTTTTIIIINNNNEEEE ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSOOOOLLLLVVVVEEEE ((((_t_o_k_e_n,,,, _x,,,, _b))))
  55.           IIIINNNNTTTTEEEEGGGGEEEERRRR _t_o_k_e_n
  56.           DDDDOOOOUUUUBBBBLLLLEEEE CCCCOOOOMMMMPPPPLLLLEEEEXXXX _x(*),,,, _b(*)
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ZZZZPPPPSSSSLLLLDDDDLLLLTTTT((((3333SSSS))))                                                        ZZZZPPPPSSSSLLLLDDDDLLLLTTTT((((3333SSSS))))
  71.  
  72.  
  73.  
  74.           SSSSUUUUBBBBRRRROOOOUUUUTTTTIIIINNNNEEEE ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSOOOOLLLLVVVVEEEEMMMM ((((_t_o_k_e_n,,,, _X,,,, _l_d_x,,,, _B,,,, _l_d_b,,,, _n_r_h_s))))
  75.           IIIINNNNTTTTEEEEGGGGEEEERRRR _t_o_k_e_n,,,, _l_d_x,,,, _l_d_b,,,, _n_r_h_s
  76.           DDDDOOOOUUUUBBBBLLLLEEEE CCCCOOOOMMMMPPPPLLLLEEEEXXXX _X(*),,,, _B(*)
  77.  
  78.           DDDDOOOOUUUUBBBBLLLLEEEE PPPPRRRREEEECCCCIIIISSSSIIIIOOOONNNN FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSTTTTOOOORRRRAAAAGGGGEEEE((((_t_o_k_e_n))))
  79.           IIIINNNNTTTTEEEEGGGGEEEERRRR _t_o_k_e_n
  80.  
  81.      C/C++ synopsis:
  82.  
  83.           ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____ssssppppaaaarrrrsssseeee....hhhh>>>>
  84.  
  85.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____DDDDeeeessssttttrrrrooooyyyy ((((iiiinnnntttt _t_o_k_e_n))));;;;
  86.  
  87.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____EEEExxxxttttrrrraaaaccccttttPPPPeeeerrrrmmmm ((((iiiinnnntttt _t_o_k_e_n,,,, iiiinnnntttt _p_e_r_m[[[[]]]]))));;;;
  88.  
  89.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____FFFFaaaaccccttttoooorrrr ((((iiiinnnntttt _t_o_k_e_n,,,, iiiinnnntttt _n,,,, iiiinnnntttt _p_o_i_n_t_e_r_s[[[[]]]],,,, iiiinnnntttt
  90.           _i_n_d_i_c_e_s[[[[]]]],,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx _v_a_l_u_e_s[[[[]]]]))));;;;
  91.  
  92.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____FFFFaaaaccccttttoooorrrrOOOOOOOOCCCC ((((iiiinnnntttt _t_o_k_e_n,,,, iiiinnnntttt _n,,,, iiiinnnntttt _p_o_i_n_t_e_r_s[[[[]]]],,,, iiiinnnntttt
  93.           _i_n_d_i_c_e_s[[[[]]]],,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx _v_a_l_u_e_s[[[[]]]]))));;;;
  94.  
  95.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____OOOOOOOOCCCCLLLLiiiimmmmiiiitttt ((((iiiinnnntttt _t_o_k_e_n,,,, ddddoooouuuubbbblllleeee _o_o_c_l_i_m_i_t))));;;;
  96.  
  97.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____OOOOOOOOCCCCPPPPaaaatttthhhh ((((iiiinnnntttt _t_o_k_e_n,,,, cccchhhhaaaarrrr _o_o_c_p_a_t_h[[[[]]]]))));;;;
  98.  
  99.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____OOOOrrrrddddeeeerrrriiiinnnngggg ((((iiiinnnntttt _t_o_k_e_n,,,, iiiinnnntttt _m_e_t_h_o_d))));;;;
  100.  
  101.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____PPPPrrrreeeepppprrrroooocccceeeessssssss ((((iiiinnnntttt _t_o_k_e_n,,,, iiiinnnntttt _n,,,, iiiinnnntttt _p_o_i_n_t_e_r_s[[[[]]]],,,, iiiinnnntttt
  102.           _i_n_d_i_c_e_s[[[[]]]],,,, lllloooonnnngggg lllloooonnnngggg *_n_o_n__z_e_r_o_s,,,, ddddoooouuuubbbblllleeee *_o_p_s))));;;;
  103.  
  104.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____PPPPrrrreeeepppprrrroooocccceeeessssssssZZZZ ((((iiiinnnntttt _t_o_k_e_n,,,, iiiinnnntttt _n,,,, iiiinnnntttt _p_o_i_n_t_e_r_s[[[[]]]],,,, iiiinnnntttt
  105.           _i_n_d_i_c_e_s[[[[]]]],,,, iiiinnnntttt _m_a_s_k[[[[]]]],,,, lllloooonnnngggg lllloooonnnngggg *_n_o_n__z_e_r_o_s,,,, ddddoooouuuubbbblllleeee *_o_p_s))));;;;
  106.  
  107.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeee ((((iiiinnnntttt _t_o_k_e_n,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx _x[[[[]]]],,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx _b[[[[]]]]))));;;;
  108.  
  109.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeeeMMMM ((((iiiinnnntttt _t_o_k_e_n,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx _X[[[[]]]],,,, iiiinnnntttt _l_d_x,,,,
  110.           ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx _B[[[[]]]],,,, iiiinnnntttt _l_d_b,,,, iiiinnnntttt _n_r_h_s))));;;;
  111.  
  112.           ddddoooouuuubbbblllleeee ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSttttoooorrrraaaaggggeeee ((((iiiinnnntttt _t_o_k_e_n))));;;;
  113.  
  114.      C++ STL synopsis:
  115.  
  116.           ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>>
  117.           ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____ssssppppaaaarrrrsssseeee....hhhh>>>>
  118.  
  119.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____DDDDeeeessssttttrrrrooooyyyy ((((iiiinnnntttt _t_o_k_e_n))));;;;
  120.  
  121.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____EEEExxxxttttrrrraaaaccccttttPPPPeeeerrrrmmmm ((((iiiinnnntttt _t_o_k_e_n,,,, iiiinnnntttt _p_e_r_m[[[[]]]]))));;;;
  122.  
  123.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____FFFFaaaaccccttttoooorrrr ((((iiiinnnntttt _t_o_k_e_n,,,, iiiinnnntttt _n,,,, iiiinnnntttt _p_o_i_n_t_e_r_s[[[[]]]],,,, iiiinnnntttt
  124.           _i_n_d_i_c_e_s[[[[]]]],,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> _v_a_l_u_e_s[[[[]]]]))));;;;
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ZZZZPPPPSSSSLLLLDDDDLLLLTTTT((((3333SSSS))))                                                        ZZZZPPPPSSSSLLLLDDDDLLLLTTTT((((3333SSSS))))
  137.  
  138.  
  139.  
  140.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____FFFFaaaaccccttttoooorrrrOOOOOOOOCCCC ((((iiiinnnntttt _t_o_k_e_n,,,, iiiinnnntttt _n,,,, iiiinnnntttt _p_o_i_n_t_e_r_s[[[[]]]],,,, iiiinnnntttt
  141.           _i_n_d_i_c_e_s[[[[]]]],,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> _v_a_l_u_e_s[[[[]]]]))));;;;
  142.  
  143.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____OOOOOOOOCCCCLLLLiiiimmmmiiiitttt ((((iiiinnnntttt _t_o_k_e_n,,,, ddddoooouuuubbbblllleeee _o_o_c_l_i_m_i_t))));;;;
  144.  
  145.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____OOOOOOOOCCCCPPPPaaaatttthhhh ((((iiiinnnntttt _t_o_k_e_n,,,, cccchhhhaaaarrrr _o_o_c_p_a_t_h[[[[]]]]))));;;;
  146.  
  147.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____OOOOrrrrddddeeeerrrriiiinnnngggg ((((iiiinnnntttt _t_o_k_e_n,,,, iiiinnnntttt _m_e_t_h_o_d))));;;;
  148.  
  149.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____PPPPrrrreeeepppprrrroooocccceeeessssssss ((((iiiinnnntttt _t_o_k_e_n,,,, iiiinnnntttt _n,,,, iiiinnnntttt _p_o_i_n_t_e_r_s[[[[]]]],,,, iiiinnnntttt
  150.           _i_n_d_i_c_e_s[[[[]]]],,,, lllloooonnnngggg lllloooonnnngggg *_n_o_n__z_e_r_o_s,,,, ddddoooouuuubbbblllleeee *_o_p_s))));;;;
  151.  
  152.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____PPPPrrrreeeepppprrrroooocccceeeessssssssZZZZ ((((iiiinnnntttt _t_o_k_e_n,,,, iiiinnnntttt _n,,,, iiiinnnntttt _p_o_i_n_t_e_r_s[[[[]]]],,,, iiiinnnntttt
  153.           _i_n_d_i_c_e_s[[[[]]]],,,, iiiinnnntttt _m_a_s_k[[[[]]]],,,, lllloooonnnngggg lllloooonnnngggg *_n_o_n__z_e_r_o_s,,,, ddddoooouuuubbbblllleeee *_o_p_s))));;;;
  154.  
  155.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeee ((((iiiinnnntttt _t_o_k_e_n,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> _x[[[[]]]],,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>>
  156.           _b[[[[]]]]))));;;;
  157.  
  158.           vvvvooooiiiidddd ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeeeMMMM ((((iiiinnnntttt _t_o_k_e_n,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> _X[[[[]]]],,,, iiiinnnntttt _l_d_x,,,,
  159.           ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> _B[[[[]]]],,,, iiiinnnntttt _l_d_b,,,, iiiinnnntttt _n_r_h_s))));;;;
  160.  
  161.           ddddoooouuuubbbblllleeee ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSttttoooorrrraaaaggggeeee ((((iiiinnnntttt _t_o_k_e_n))));;;;
  162.  
  163. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  164.      These routines are part of the SCSL Scientific Library and can be loaded
  165.      using either the ----llllssssccccssss or the ----llllssssccccssss____mmmmpppp option.  The ----llllssssccccssss____mmmmpppp option
  166.      directs the linker to use the multi-processor version of the library.
  167.  
  168.      When linking to SCSL with ----llllssssccccssss or ----llllssssccccssss____mmmmpppp, the default integer size is
  169.      4 bytes (32 bits). Another version of SCSL is available in which integers
  170.      are 8 bytes (64 bits). This version allows the user access to larger
  171.      memory sizes and helps when porting legacy Cray codes.  It can be loaded
  172.      by using the ----llllssssccccssss____iiii8888 option or the ----llllssssccccssss____iiii8888____mmmmpppp option.  A program may
  173.      use only one of the two versions; 4-byte integer and 8-byte integer
  174.      library calls cannot be mixed.
  175.  
  176.      The C and C++ prototypes shown above are appropriate for the 4-byte
  177.      integer version of SCSL. When using the 8-byte integer version, the
  178.      variables of type iiiinnnntttt become lllloooonnnngggg lllloooonnnngggg and the <<<<ssssccccssssllll____ssssppppaaaarrrrsssseeee____iiii8888....hhhh>>>> header
  179.      file should be included.
  180.  
  181. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  182.      ZZZZPPPPSSSSLLLLDDDDLLLLTTTT solves sparse symmetric linear systems of the form _A_x = _b where _A
  183.      is a complex _n-by-_n symmetric input matrix, _b is a complex input vector
  184.      of length _n, and _x is a complex unknown vector of length _n.  Hermitian
  185.      symmetric matrices are not supported at this time; to handle structures
  186.      of this type, use a full matrix representation as input to ZZZZPPPPSSSSLLLLDDDDLLLLTTTT(3S).
  187.  
  188.      ZZZZPPPPSSSSLLLLDDDDLLLLTTTT uses a direct method. _A is factored into the following form:
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. ZZZZPPPPSSSSLLLLDDDDLLLLTTTT((((3333SSSS))))                                                        ZZZZPPPPSSSSLLLLDDDDLLLLTTTT((((3333SSSS))))
  203.  
  204.  
  205.  
  206.           _A = _L _D _L_T
  207.  
  208.      where _L is a lower triangular matrix with unit diagonal and _D is a
  209.      diagonal matrix.
  210.  
  211.      Note that NO PIVOTING FOR STABILITY is performed during factorization.
  212.  
  213.      The ZZZZPPPPSSSSLLLLDDDDLLLLTTTT library contains five main routines.
  214.  
  215.      *   ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____OOOOrrrrddddeeeerrrriiiinnnngggg(((()))) allows the user to select one of five possible
  216.          reordering methods to be used in the matrix preprocessing phase.
  217.  
  218.      *   ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____PPPPrrrreeeepppprrrroooocccceeeessssssss(((()))) performs preprocessing operations on the
  219.          structure of _A (heuristic reordering to reduce fill in _L, symbolic
  220.          factorization, etc.).
  221.  
  222.      *   ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____FFFFaaaaccccttttoooorrrr(((()))) factors the matrix _A into _L and _D, using the
  223.          previously computed preprocessing data.
  224.  
  225.      *   ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeee(((()))) solves for a vector _x, given an input vector _b.
  226.  
  227.      *   ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____DDDDeeeessssttttrrrrooooyyyy(((()))) frees all storage associated with the matrix _A
  228.          (including _L, _D, and various data structures computed during
  229.          preprocessing).
  230.  
  231.      The user can call ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____FFFFaaaaccccttttoooorrrr(((()))) several times after a single call to
  232.      ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____PPPPrrrreeeepppprrrroooocccceeeessssssss(((()))) to factor multiple matrices with identical non-zero
  233.      structures but different values.  Similarly, the user can call
  234.      ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeee(((()))) several times after a single call to ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____FFFFaaaaccccttttoooorrrr(((()))) to
  235.      solve for multiple right-hand-sides.  Also, the user can call
  236.      ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeeeMMMM(((()))) to solve for multiple right-hand-sides all stored in a
  237.      single array.
  238.  
  239.    SSSSppppaaaarrrrsssseeee MMMMaaaattttrrrriiiixxxx FFFFoooorrrrmmmmaaaatttt
  240.      Sparse matrix _A must be input to ZZZZPPPPSSSSLLLLDDDDLLLLTTTT in Harwell-Boeing format (also
  241.      known as Compressed Column Storage format).
  242.  
  243.      The matrix is held in three arrays: _p_o_i_n_t_e_r_s, _i_n_d_i_c_e_s, and _v_a_l_u_e_s.  The
  244.      _i_n_d_i_c_e_s array contains the row indices of the non-zeros in _A. The _v_a_l_u_e_s
  245.      array holds the corresponding non-zero values. The _p_o_i_n_t_e_r_s array
  246.      contains the index in _i_n_d_i_c_e_s for the first non-zero in each column of _A.
  247.      Thus, the row indices for the non-zeros in column _i can be found in
  248.      locations _i_n_d_i_c_e_s[[[[_p_o_i_n_t_e_r_s[[[[_i]]]]]]]] through _i_n_d_i_c_e_s[[[[_p_o_i_n_t_e_r_s[[[[_i+1]]]]-1]]]]. The
  249.      corresponding values can be found in location _v_a_l_u_e_s[[[[_p_o_i_n_t_e_r_s[[[[_i]]]]]]]] through
  250.      _v_a_l_u_e_s[[[[_p_o_i_n_t_e_r_s[[[[_i+1]]]]-1]]]].
  251.  
  252.      For a symmetric matrix _A, the user must input either the lower or upper
  253.      triangle of _A, but not both.  Non-zeroes within a column of _A can be
  254.      stored in any order.
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. ZZZZPPPPSSSSLLLLDDDDLLLLTTTT((((3333SSSS))))                                                        ZZZZPPPPSSSSLLLLDDDDLLLLTTTT((((3333SSSS))))
  269.  
  270.  
  271.  
  272.      In the following example, the symmetric matrix
  273.  
  274.      (1.0,2.0)
  275.      (0.0,0.0) (3.0,6.0)
  276.      (2.0,4.0) (0.0,0.0) (5.0,10.0)
  277.      (0.0,0.0) (4.0,8.0) (0.0, 0.0) (6.0,12.0)
  278.  
  279.  
  280.      would be represented in FORTRAN as follows:
  281.  
  282.       INTEGER pointers(5), indices(6), i
  283.       DOUBLE COMPLEX values(6)
  284.       DATA (pointers(i), i = 1, 5) / 1, 3, 5, 6, 7 /
  285.       DATA (indices(i),  i = 1, 6) / 1, 3, 2, 4, 3, 4 /
  286.       DATA (values(i),   i = 1, 6) / (1.0,2.0), (2.0,4.0), (3.0,6.0),
  287.      &                               (4.0,8.0), (5.0,10.0), (6.0,12.0) /
  288.  
  289.  
  290.      Zero-based indexing is used in C, so the _p_o_i_n_t_e_r_s and _i_n_d_i_c_e_s arrays
  291.      would instead contain the following:
  292.  
  293.      #include <scsl_sparse.h>
  294.      int pointers[]        = {0, 2, 4, 5, 6};
  295.      int indices[]         = {0, 2, 1, 3, 2, 3};
  296.      scsl_zomplex values[] = {{1.0,2.0}, {2.0,4.0}, {3.0,6.0},
  297.                               {4.0,8.0}, {5.0,10.0}, {6.0,12.0}};
  298.  
  299.  
  300.    OOOOrrrrddddeeeerrrriiiinnnngggg MMMMeeeetttthhhhooooddddssss
  301.      The ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____OOOOrrrrddddeeeerrrriiiinnnngggg((((_t_o_k_e_n,,,, _m_e_t_h_o_d)))) routine allows the user to change the
  302.      ordering method used to pre-order the matrix before factorization.  This
  303.      routine must be called before calling ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____PPPPrrrreeeepppprrrroooocccceeeessssssss(((()))). Five options
  304.      are currently available for the method parameter:
  305.  
  306.      *   Method 0 performs no pre-ordering
  307.  
  308.      *   Method 1 performs Approximate Minimum Fill ordering
  309.  
  310.      *   Method 2 performs a single nested dissection ordering (default).
  311.          This method is often called "Extreme matrix ordering".
  312.  
  313.      *   Method 3 performs multiple nested dissection orderings (in parallel)
  314.  
  315.      *   Method 4 performs multiple nested dissection (the same as in Method
  316.          3), but it uses a feedback file to "learn" from the previous solves
  317.          of the same matrix structure and it performs more orderings. The
  318.          multiple nested dissection technique of Methods 3 and 4 is also
  319.          referred to as "Extreme2 matrix ordering".
  320.  
  321.      Method 2 is significantly more expensive than Method 1, but it usually
  322.      produces significantly better orderings.  Method 3 is especially
  323.      effective on multi-processor systems.  It computes OOOOMMMMPPPP____NNNNUUUUMMMM____TTTTHHHHRRRREEEEAAAADDDDSSSS (where
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. ZZZZPPPPSSSSLLLLDDDDLLLLTTTT((((3333SSSS))))                                                        ZZZZPPPPSSSSLLLLDDDDLLLLTTTT((((3333SSSS))))
  335.  
  336.  
  337.  
  338.      OOOOMMMMPPPP____NNNNUUUUMMMM____TTTTHHHHRRRREEEEAAAADDDDSSSS is an environment variable indicating the number of
  339.      processors to be used for parallel computation) matrix orderings using
  340.      different starting points for the algorithm and uses the ordering that
  341.      will lead to the fewest floating-point operations to factorize the
  342.      matrix.
  343.  
  344.      Method 4 is useful only when the same non-zero structure is used for
  345.      multiple solves.  Method 4 keeps a record in a "feedback" file of a
  346.      signature for non-zero structures for a maximum of 200 matrices and of
  347.      the starting point that was saved from a previous solve for that
  348.      structure.  In the next Method 4 ordering for that non-zero structure,
  349.      that best starting point and 2222 **** OOOOMMMMPPPP____NNNNUUUUMMMM____TTTTHHHHRRRREEEEAAAADDDDSSSS ---- 1111 new ones generate
  350.      orderings.  The best ordering is used.  In this way, the quality of
  351.      orderings stay the same or improve over time.
  352.  
  353.      Methods 3 and 4 typically take more time for the matrix preprocessing
  354.      than the default.  However, on large systems or on repeated
  355.      factorizations, significant overall speedups (1.1X to 2X) can be obtained
  356.      compared to Method 2.
  357.  
  358.    EEEExxxxttttrrrraaaaccccttttiiiinnnngggg tttthhhheeee ppppeeeerrrrmmmmuuuuttttaaaattttiiiioooonnnn vvvveeeeccccttttoooorrrr
  359.      Unless ordering Method 0 is used, ZZZZPPPPSSSSLLLLDDDDLLLLTTTT applies a symmetric permutation
  360.      to matrix A before the factorization step; the resulting permuted matrix
  361.      generally has significantly less fill-in than the original matrix.  The
  362.      user can obtain the permutation matrix associated with a given token by
  363.      calling ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____EEEExxxxttttrrrraaaaccccttttPPPPeeeerrrrmmmm((((_t_o_k_e_n,,,, _p_e_r_m)))). The permutation is returned as
  364.      an integer array of length _n, with 1111 <<<<==== ppppeeeerrrrmmmm((((iiii)))) <<<<==== nnnn (0000 <<<<==== ppppeeeerrrrmmmm[[[[iiii]]]] <<<< nnnn
  365.      for C code).
  366.  
  367.      A value of _k for _p_e_r_m(_i) implies that node _k in the original ordering is
  368.      node _i in the new ordering.
  369.  
  370.    MMMMaaaattttrrrriiiicccceeeessss wwwwiiiitttthhhh zzzzeeeerrrroooossss oooonnnn tttthhhheeee ddddiiiiaaaaggggoooonnnnaaaallll
  371.      As noted above, no pivoting is done for stability during factorization;
  372.      when zero or near-zero pivots are encountered, ZZZZPPPPSSSSLLLLDDDDLLLLTTTT usually fails. In
  373.      these cases, it may be possible to use ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____PPPPrrrreeeepppprrrroooocccceeeessssssssZZZZ(((()))) to obtain a
  374.      slightly different, but stable, ordering.  The user provides an
  375.      additional integer array, _m_a_s_k, as an argument to ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____PPPPrrrreeeepppprrrroooocccceeeessssssssZZZZ(((()))).
  376.      If _m_a_s_k(_i)====0000, then ZZZZPPPPSSSSLLLLDDDDLLLLTTTT will attempt to maximize the diagonal element
  377.      ||||AAAAiiiiiiii||||.
  378.  
  379.    MMMMeeeemmmmoooorrrryyyy uuuussssaaaaggggeeee
  380.      The returned value of ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSttttoooorrrraaaaggggeeee(((()))) is an estimate of the amount of
  381.      storage required (in millions of bytes) by the solver's data structures
  382.      for a given matrix system.
  383.  
  384.    OOOOuuuutttt----ooooffff----ccccoooorrrreeee FFFFaaaaccccttttoooorrrriiiizzzzaaaattttiiiioooonnnn
  385.      The storage associated with the factor can be managed in two ways.  The
  386.      ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____FFFFaaaaccccttttoooorrrr(((()))) routine allocates memory for the factor and manages it
  387.      internally, releasing it only when ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____DDDDeeeessssttttrrrrooooyyyy(((()))) is called.  The
  388.      alternative is to do out-of-core factorization by calling
  389.      ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____FFFFaaaaccccttttoooorrrrOOOOOOOOCCCC(((()))). This routine uses a small amount of in-core memory,
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. ZZZZPPPPSSSSLLLLDDDDLLLLTTTT((((3333SSSS))))                                                        ZZZZPPPPSSSSLLLLDDDDLLLLTTTT((((3333SSSS))))
  401.  
  402.  
  403.  
  404.      placing the remainder of the factor matrix on disk as it is computed.
  405.      The user can call ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____OOOOOOOOCCCCPPPPaaaatttthhhh(((()))) to indicate the directory in which
  406.      the factor file should be written, and ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____OOOOOOOOCCCCLLLLiiiimmmmiiiitttt(((()))) to indicate how
  407.      much memory to use to hold portions of the factor matrix in-core.  More
  408.      in-core memory generally leads to less disk I/O and higher performance
  409.      during the factorization.  The only required change is to move from in-
  410.      core factorization to out-of-core factorization is the change from
  411.      ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____FFFFaaaaccccttttoooorrrr(((()))) to ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____FFFFaaaaccccttttoooorrrrOOOOOOOOCCCC(((()))).  The other routines
  412.      (ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeee(((()))), ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____DDDDeeeessssttttrrrrooooyyyy(((()))), etc.) handle out-of-core factors
  413.      transparently.  Note that ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____FFFFaaaaccccttttoooorrrrOOOOOOOOCCCC(((()))) and subsequent calls to
  414.      ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeee(((()))) are not parallelized (but calls to ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeeeMMMM(((()))) are
  415.      parallelized, as discussed below).
  416.  
  417.    MMMMuuuullllttttiiiipppplllleeee RRRRiiiigggghhhhtttt----HHHHaaaannnndddd----SSSSiiiiddddeeeessss
  418.      ZZZZPPPPSSSSLLLLDDDDLLLLTTTT can solve for large numbers of right-hand-sides with one call to
  419.      ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeeeMMMM(((()))).  It solves these right hand sides in parallel, with
  420.      each processor solving up to four at a time for in-core systems and up to
  421.      PPPPSSSSLLLLDDDDLLLLTTTT____OOOOOOOOCCCCBBBBLLLLKKKK at a time for out-of-core systems, where PPPPSSSSLLLLDDDDLLLLTTTT____OOOOOOOOCCCCBBBBLLLLKKKK is
  422.      an environment variable whose default value is 1.
  423.  
  424.    IIIInnnn----ppppllllaaaacccceeee SSSSoooollllvvvveeeessss
  425.      Both ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeee(((()))) and ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeeeMMMM(((()))) allow the solution vector(s) to
  426.      overwrite the right-hand-side(s) when identical vectors or matrices are
  427.      supplied to these routines.  For example,
  428.  
  429.       CALL ZPSLDLT_SOLVE(token, b, b)
  430.  
  431.  
  432.      takes the right-hand-side input from _b and also returns the solution
  433.      vector in _b.  When this option is used with ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeeeMMMM(((()))), the leading
  434.      dimensions for the solution and right-hand-side matrices must agree.  The
  435.      amount of memory actually saved by performing an in-place solve depends
  436.      on the number of right-hand-sides used.  For a single right-hand-side,
  437.      there are no net savings versus an out-of-place solve because a temporary
  438.      copy of the input vector is made internally.  For multiple right-hand-
  439.      sides the memory overhead decreases as the ratio of right-hand-sides to
  440.      processors used increases.
  441.  
  442.    AAAArrrrgggguuuummmmeeeennnnttttssss
  443.      These routines have the following arguments:
  444.  
  445.      _t_o_k_e_n     (input) ZZZZPPPPSSSSLLLLDDDDLLLLTTTT can handle multiple matrices simultaneously.
  446.                The _t_o_k_e_n distinguishes between active matrices.  The _t_o_k_e_n
  447.                passed to ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____FFFFaaaaccccttttoooorrrr(((()))) must match the _t_o_k_e_n used in some
  448.                previous call to ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____PPPPrrrreeeepppprrrroooocccceeeessssssss(((()))).  Similarly, the _t_o_k_e_n
  449.                passed to ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeee(((()))) must match the _t_o_k_e_n used in some
  450.                previous call to ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____FFFFaaaaccccttttoooorrrr(((()))).  0000 <<<<==== _t_o_k_e_n <<<<==== 11119999....
  451.  
  452.      _m_e_t_h_o_d    (input) An integer specifying the ordering method used during
  453.                preprocessing.  0000 <<<<==== _m_e_t_h_o_d <<<<==== 4444....
  454.  
  455.  
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. ZZZZPPPPSSSSLLLLDDDDLLLLTTTT((((3333SSSS))))                                                        ZZZZPPPPSSSSLLLLDDDDLLLLTTTT((((3333SSSS))))
  467.  
  468.  
  469.  
  470.      _n         (input) The number of rows and columns in the matrix _A.  _n >>>>====
  471.                0000....
  472.  
  473.      _p_o_i_n_t_e_r_s, _i_n_d_i_c_e_s, _v_a_l_u_e_s
  474.                (input) The _p_o_i_n_t_e_r_s and _i_n_d_i_c_e_s arrays store the non-zero
  475.                structure of sparse input matrix _A in Harwell-Boeing or
  476.                Compressed Sparse Column (CSC) format.
  477.  
  478.                The _p_o_i_n_t_e_r_s array stores _n+1 integers, where _p_o_i_n_t_e_r_s[[[[_i]]]] gives
  479.                the index in _i_n_d_i_c_e_s of the first non-zero in column _i of _A.
  480.                The _i_n_d_i_c_e_s array stores the row indices of the non-zeros in _A.
  481.                The _v_a_l_u_e_s array stores the non-zero values in the matrix _A.
  482.  
  483.      _n_o_n__z_e_r_o_s (output) The number of non-zero values in _L.
  484.  
  485.      _o_p_s       (output) The number of floating-point operations required to
  486.                factor _A.
  487.  
  488.      _m_a_s_k      (input) An integer array of length _n used in
  489.                ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____PPPPrrrreeeepppprrrroooocccceeeessssssssZZZZ(((()))).  If _m_a_s_k(_i) ==== 0000, then node _i of matrix A
  490.                is ordered after all of its neighbors in an attempt to avoid a
  491.                zero pivot.
  492.  
  493.      _b         (input) The right-hand-side vector in a ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeee(((()))) call.
  494.  
  495.      _x         (output) The solution vector in a ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeee(((()))) call.
  496.  
  497.      _n_r_h_s      (input) The number of right-hand side vectors present in a
  498.                ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeeeMMMM(((()))) call.
  499.  
  500.      _B         (input) The right-hand-side matrix in a ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeeeMMMM(((()))) call.
  501.                Must be stored in column-major order.
  502.  
  503.      _l_d_b       (input) The leading dimension of matrix _B. _l_d_b >>>>==== _n.
  504.  
  505.      _X         (output) The solution matrix in a ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____SSSSoooollllvvvveeeeMMMM(((()))) call. Must
  506.                be stored in column-major order.
  507.  
  508.      _l_d_x       (input) The leading dimension of matrix _X. _l_d_x >>>>==== _n.
  509.  
  510.      _o_o_c_p_a_t_h   (input) A character array/string with a path to the directory
  511.                where the temporary out-of-core factor files should be stored.
  512.                If this path is on a striped (or raid-0) file system, the
  513.                performance of the out-of-core solves can be considerably
  514.                improved.  The default path is ////uuuussssrrrr////ttttmmmmpppp.
  515.  
  516.      _o_o_c_l_i_m_i_t  (input) A double precision number indicating the number of
  517.                Mbytes of random access memory that should be used for factor
  518.                storage during a call to ZZZZPPPPSSSSLLLLDDDDLLLLTTTT____FFFFaaaaccccttttoooorrrrOOOOOOOOCCCC(((()))). Note that there
  519.                are many other arrays used besides those directly used to store
  520.                the factorization, so total RAM usage by the solve will exceed
  521.                this number.  The default is 64 MB.
  522.  
  523.  
  524.  
  525.                                                                         PPPPaaaaggggeeee 8888
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. ZZZZPPPPSSSSLLLLDDDDLLLLTTTT((((3333SSSS))))                                                        ZZZZPPPPSSSSLLLLDDDDLLLLTTTT((((3333SSSS))))
  533.  
  534.  
  535.  
  536.      _p_e_r_m      (output) An integer array of length _n containing the
  537.                permutation used to reorder matrix A.
  538.  
  539. EEEENNNNVVVVIIIIRRRROOOONNNNMMMMEEEENNNNTTTT VVVVAAAARRRRIIIIAAAABBBBLLLLEEEESSSS
  540.      Two environment variables can affect the operation of ordering methods 3
  541.      and 4.  SSSSPPPPAAAARRRRSSSSEEEE____NNNNUUUUMMMM____OOOORRRRDDDDEEEERRRRSSSS can be used to change the number of orderings
  542.      performed from the default of OOOOMMMMPPPP____NNNNUUUUMMMM____TTTTHHHHRRRREEEEAAAADDDDSSSS for Method 3 and
  543.      (2*OOOOMMMMPPPP____NNNNUUUUMMMM____TTTTHHHHRRRREEEEAAAADDDDSSSS) for Method 4.  SSSSPPPPAAAARRRRSSSSEEEE____FFFFEEEEEEEEDDDDBBBBAAAACCCCKKKK____FFFFIIIILLLLEEEE can be set to the
  544.      path and file name where the feedback information will be kept;
  545.      otherwise, the default feedback file is $$$$HHHHOOOOMMMMEEEE////....ssssppppaaaarrrrsssseeeeFFFFeeeeeeeeddddbbbbaaaacccckkkk.  This file
  546.      will be less than 5K bytes.
  547.  
  548.      The environment variable OOOOMMMMPPPP____NNNNUUUUMMMM____TTTTHHHHRRRREEEEAAAADDDDSSSS determines the number of
  549.      processors that are used for the numerical factorization and solve
  550.      phases.  Out-of-core solves can be performed in groups of PPPPSSSSLLLLDDDDLLLLTTTT____OOOOOOOOCCCCBBBBLLLLKKKK
  551.      right-hand-sides per processor.  Setting the environment variable
  552.      PPPPSSSSLLLLDDDDLLLLTTTT____VVVVEEEERRRRBBBBOOOOSSSSEEEE causes ZZZZPPPPSSSSLLLLDDDDLLLLTTTT to output information about the
  553.      factorization.
  554.  
  555. NNNNOOOOTTTTEEEESSSS
  556.      These routines are optimized and parallelized for the SGI R8000 and
  557.      R1x000 platforms.
  558.  
  559. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  560.      IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL(3S), IIIINNNNTTTTRRRROOOO____SSSSOOOOLLLLVVVVEEEERRRRSSSS(3S), ZZZZPPPPSSSSLLLLDDDDUUUU(3S), DDDDPPPPSSSSLLLLDDDDLLLLTTTT(3S), DDDDPPPPSSSSLLLLDDDDUUUU(3S)
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.                                                                         PPPPaaaaggggeeee 9999
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.